perm filename PUPFTP.TVR[UP,DOC]3 blob
sn#700578 filedate 1983-02-18 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00021 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 PUPFTP - Ethernet FTP
C00004 00003 INTRODUCTION
C00006 00004 NOTATION
C00008 00005 COMMAND FORMAT
C00011 00006 SWITCHES
C00013 00007 OPENING A CONNECTION
C00017 00008 CONFIRMATION
C00019 00009 USER NAMES
C00020 00010 MULTIPLE TRANSFERS
C00024 00011 RETR local-file←remote-file Synonym: GET
C00028 00012 STORE local-file→remote-file Synonyms: PUT, SEND
C00033 00013 DELETE file
C00036 00014 LIST file Synonym: STAT
C00038 00015 TYPE TEXT Synonyms: ASCII, TEXT
C00043 00016 USER name Synonym: LOGIN
C00046 00017 ACCOUNT name Synonym: ACCT
C00047 00018 ALIAS name Synonyms: CWD, XCWD
C00048 00019 QUIT Synonyms: BYE, EXIT
C00049 00020 HELP topic
C00051 00021 Unimplemented commands
C00053 ENDMK
C⊗;
PUPFTP - Ethernet FTP
Note: This copy is intended for online use only.
PLEASE DO NOT PRINT IT.
A version suitable for printing will be made soon.
INTRODUCTION
PUPFTP is a program to transfer files over an Ethernet connection. It can both
store and retrieve files from a remote file system, as well as do other file
management operations, such as deletion, renaming files, and listing
directories. It is capable of transferring multiple files on a single command
when given 'wild card' file names.
PUPFTP is different from FTP for the ARPANET. The ARPANET protocol uses TELNET
based commands and communicates data on a separate link. PUPFTP uses special
marks to separate commands and data, and has property list based commands. Like
the ARPANET version, the default mode for data transfer is text. However binary
data is transmitted on a word basis rather than in stream (or image) mode.
PUPFTP in text mode also defaults to a different end of line convention than is
used on WAITS, and this must be avoided if sending files formatted for the LPT
or XGP.
NOTATION
In the following documentation, the term 'local' refers to the site on which you
are running PUPFTP and the term 'remote' (or 'foreign') refers to the other
computer system that to which PUPFTP is connected. Keep this especially in mind
when you are using CHAT to communicate with a system and then that system's
PUPFTP to connect to the system on which you are running CHAT!
The manual is organized first by topic and then by command. The first line of a
command description look like this:
ACCOUNT name Synonym: ACCT
Words entirely in upper case stand for themselves and are usually command names.
Words entirely in lower case stand for what they describe; for example, 'name'
stands for the account name that you would like to use. 'Synonym' refers to
alternate names for the command which are included for people who may be
accustomed to an FTP program on a different system.
COMMAND FORMAT
A command consists of a command name, optionally followed by switches and
arguments, if any. The command name may be abbreviated to as few characters as
are needed to uniquely specify the command. However, new commands might be
added in the future. Therefore, it is recommended that in command files that at
least four letters be used, as the first four letters will be guaranteed to be
unambiguous. Switches immediately follow the command name without any
intervening spaces.
For most commands, the remainder of the command line is passed to the remote
system with little or no interpretation. A few commands may also reference a
local file, which is separated from the rest of the command by an arrow ('←' or
'→') or an equal sign ('='). Local files must precede remote files in the
command line since PUPFTP makes no assumptions about the format that the remote
system uses for file names. Local files are referred to as follows:
device:filename.extension[project,programmer]
Where most of these fields may be omitted. There must be either a 'filename' or
a 'device' field and some devices, notatably DSK and UDPs, require a filename.
Note that 'device' and 'filename' are limited to six characters and the other
fields to three characters, and in general, these characters should be letters
or digits. If 'project' and 'programmer' are omitted, then the default (that
is, your current ALIAS) directory is used.
Command names and local file names may be in upper, lower, or mixed case.
However, some systems, notably UNIX, may care about what case is supplied for
things like remote file names, user names, and passwords.
SWITCHES
*** Switches are not implemented yet. ***
A switch is something that may optionally be given to change the way a command
works. Switches consist of a slash ('/') immediately followed by a letter.
Except when specify global switches upon opening a connection, all switches must
immediately follow the name of the command (not after files or other
parameters). A switch may also have a minus sign ('-') between the slash and
the letter which usually inverts the function of the switch. For example,
RETRIEVE/O TEST.TXT
permit overwriting of TEST.TXT without asking for confirmation, while
RETRIEVE/-O TEST.TXT
requires confirmation.
OPENING A CONNECTION
To connect to a system which is a 'server' (a VAX, PDP-10, or other large
machine), you run PUPFTP and give it a host name. On a system which is a 'user'
(or personal machine) like an ALTO, you may have to start up an FTP program
before attempting a connection. You may specify the host name on the WAITS
monitor command line by:
R PUPFTP;host-name
For example, 'R PUPFTP;IFS' would connect you to the host called IFS (Interim
File Server.)
A 'host-name' is something that refers to a particular system connected via the
Ethernet. It must be spelled out in full as the host name to host number
translation is obtained from a host on the Ethernet which does not support
abbreviation.
If for some reason the host name doesn't seem to work, and you know the host
number, you may give that instead. The format to specify a numeric host is:
R PUPFTP;host-number#
or
R PUPFTP;network-number#host-number#
These numbers are in octal. For example, 'R PUPFTP;50#200#' is an alternative
way to connect to SUNet's IFS.
*** The following is not implemented yet.
When establishing a connection, you may also specify global switches which are
in effect for the duration of the connection. They are included immediately
after the host name in the WAITS monitor command. For example,
R PUPFTP;IFS/L
will save a typescript of your interactions with the IFS on a file called
FTP.LOG on your default (that is, your ALIAS) directory. The global switches
currently defined are:
/L Save typescript on FTP.LOG
/A Append typescript to FTP.LOG instead of replacing it as /L does.
/V Always ask for confirmations.
/-V Never ask for confirmations.
The default is not to save a typescript and to ask for confirmation under
certain circumstances which are documented under the individual commands.
CONFIRMATION
Most commands expect confirmation before completing an action. This is
different from FTP for the ARPANET which only asks for confirmation when
overwriting a file. There are several reasons for this. First, many commands
can transfer more than one file and the user may not want all of the
possibilities. Second, most other Ethernet FTP implementaions request
confirmations, and so many users will be expecting an opportunity to verify that
they really want to do an operation.
The program expects confirmation when it prints one of the following:
(Confirm)
(New file)
(Old file)
To confirm or reject, type one of the following:
Accept: <return> or <space>
Reject: <rubout> (also called <bs> on some terminals)
Abort: <altmode>
When you type <altmode>, the entire command is aborted. If the command involves
a large number of files, it may take a while for PUPFTP to cancel all of the
pending requests.
When implemented, you will be able to use the switches /-V or /O to suppress
some or all confirmations.
USER NAMES
Most systems which are 'servers' require a user name and password before you are
permitted to access any files. This may be supplied in the USER command, which
will also ask for a password with echoing turned off (assuming you have a full
duplex terminal or display).
CAUTION: At the current time, systems running UNIX are sensitive to case, that
is, if the user name is lower case (which is almost always true), then it must
be supplied to PUPFTP in lower case.
MULTIPLE TRANSFERS
Some commands may operate on more than one file. STORE can always do multiple
files, and RETRIEVE, LIST and DELETE may if the remote system supports this.
Normally, multiple files are specified by 'wild card' file names. This permits
one or more fields (depending on implementation) to be partially specified or
unspecified. '*' means match anything in a particular field, and also matches
the period ('.') separating the extension from the rest of the file name. For
example:
STORE *.FAI[1,BAR]
will store all files having the extension 'FAI' on the directory '[1,BAR]'. An
example of a partially specified field is:
STORE UDP1:PUP*.*
which will store all files with 'PUP' as their first three letters and any
extension. Since '*' can also match a period separating the extension, we could
have also simply said 'STORE UDP1:PUP*'.
CAUTION: The meaning of '*' is different in Ethernet FTP than it is for ARPANET
FTP. 'FOO*' will match both 'FOOMAC' and 'FOO.MAC', which most WAITS users may
not expect. Use 'FOO*.' to insure that the extension is null.
Wild cards may also be used for directory names. For example:
STORE *.DOC[*,XYZ]
and
RETRIEVE <*Doc*>*.Press
Note that in both cases, the directory is only used on the end of the transfer
where the file(s) are read. That is, '[*,XYZ]' only applies on the local end
of the STORE and '<*Doc*>' only applies on the remote end of the RETRIEVE. On
the other end of each of those transfers, the normal default directory is used.
That is, on a STORE, PUPFTP parses the full file name, including directory, and
but only sends the file name and extension of the file being transferred to the
other end.
PUPFTP does not attempt to parse the file name on a RETRIEVE; instead, it simply
sends it. The remote system separates the device and directory information and
returns a file name which may be used as a local file name, subject, of course,
to the WAITS restriction of six characters for a file name and three characters
for an extension.
RETR local-file←remote-file Synonym: GET
RETR file
The RETRIEVE command (usually abbreviated as RETR) transfers files from the
remote system to the local system (SAIL). The first form is used to transfer
single files, usually giving them a different name on the remote system. The
second form is used when the same file name is intended for both systems.
However, the local system (SAIL) only uses the first six characters for the file
name and the first three characters for the extension. For example,
ETHERNET.PRESS would be written by WAITS as ETHERN.PRE and would be overwritten
by ETHERNET.PRESENTATION if both files are retrieved using the second form.
A retrieve may refer to multiple files, by means of 'wild card' file names.
What a wild card file name can be depends upon what the remote system
implements. Usually, the character '*' is taken to match any number of
characters, including the '.' used to separate the extension from the rest of
the file name. At the present time, wild cards may only be used in the second
form or in the remote file part of the first form.
Transfers using 'wild card' file names will require confirmation for each file
transferred. <RETURN> accepts a file, and <RUBOUT> (sometimes called <BS> or
<DEL>) rejects a file. <ALTMODE> (sometimes called <ESCAPE>) aborts the entire
command.
The default mode for transfer is type Text, byte size 8. See the TYPE command
for more information on possible types and byte sizes.
The following switches may be given in a future implemention:
/V Verify. Always asks for confirmation from the terminal.
/-V Never asks.
/O Overwrite OK, don't ask for confirmation
/N Never overwrite existing files.
/U Update. Transfer file if file already exists, but has an older creation
date than the remote file.
/W(?) Similar to /U, except that it transfers files which do not exist, or
have been written more recently.
STORE local-file→remote-file Synonyms: PUT, SEND
STORE file
The STORE command transfers files from the local system (SAIL) to the remote
system. The first form is used to transfer a single file, usually giving it a
different name on the remote system. The second form is used when the same file
name is intended for both systems. However, the local system truncates the file
name to six characters and the extension to three character, and no more than
these are given to the remote system as a file specification. The first form
must be used if you want the remote file to have longer file names than are used
locally. Note that some systems, such as UNIX, expect their file names in lower
case, and the first form must be used for those sites.
The STORE command may also transfer multiple files via 'wild card' file names.
A file name may include one or more instances of '*'s. '*' matches zero or more
instances of any character found in a file name including '.' but excluding '['.
This means that '*MAC' will match FOO.MAC and FOOMAC, and is different from the
way it works in the COPY program. Use '*.' if you want to match all files
having no extension. '?' will match exactly one instance of any character,
including '.' but not '['. For now, wild cards may only be used in the second
form of STORE, that is, using the same file for both local and remote systems.
Transfers require confirmation for each file transferred. When you are asked,
the file name printed is the name under which the file will be stored on the
remote system. <RETURN> accepts a file, and <RUBOUT> (sometimes called <BS> or
<DEL>) rejects a file. <ALTMODE> (sometimes called <ESCAPE>) aborts the whole
command.
The default mode for transfer is Type Text, Bytesize 8. See the TYPE command
for more information.
You may use '=' in place of '→' (right arrow). The right arrow is intended as a
reminder that this command uses an unconventional ordering of source and
destination files.
Note: Under the current protocol, the program cannot detect the overwriting of
an existing file on the remote system without doing an extra directory command
to explicitly find out if the file already exists. This might be implemented in
a future version of PUPFTP if this proves to be a problem and fixing the
protocol is not feasible.
The following switches may be given in a future implemention:
/V Verify. Always asks for confirmation from the terminal.
/-V Never asks.
Note: Many options available in RETRIEVE are not currently available in STORE.
This is because the STORE command does not presently know if the file already
exists on the remote system.
DELETE file
The DELETE command (often abbreviated as DELE) is used to delete (remove) files
from a remote system. It may be used to delete a single file or multiple files
if the remote system implements 'wild card' file references.
Deletions require confirmation, which is taken from the terminal. When you are
asked, the file name to be deleted is printed. <RETURN> accepts a file, and
<RUBOUT> (sometimes called <BS> or <DEL>) rejects a file. <ALTMODE> (labeled
<ESCAPE> on some terminals) aborts the entire command.
Note: Version numbers are implementation dependent, and not all systems operate
the same way. On some systems, DELETE will delete the oldest version, on other
systems will delete the most recent, and still other system may delete all
versions. The SUNet IFS deletes the oldest version, but you should check the
documentation for the system you are using to find out what it does with version
numbers.
The following switches may be given in a future implemention:
/V Verify, the default. Always asks for confirmation from the terminal. If
there is no terminal, the deletion will not take place. This is
intended for command files where the user must confirm all deletions.
/-V Never asks. Use this in command files.
LIST file Synonym: STAT
NLST file
The LIST and NLST commands type on the terminal what files exist on the remote
system. NLST only prints the file names while LIST also prints the size and
date last written for each of the requested files.
The file specification may include 'wild cards'. So, to list everything in the
directory (on most systems, at least), you can say 'LIST *'. Note that if you
do not supply some kind of file specification, the result is undefined. If no
directory is specified, then the alias (set by the ALIAS or CWD command) is used
as the directory. If the alias directory also has not been specified, then the
user name is used for the directory; and if neither has been specified, the
result is undefined.
Lacking in this command is the ability to send the output to a file instead of
the terminal. This will be implemented in a later version of PUPFTP.
The following switches may be given in a future implemention to affect what is
printed.
/T Type of file
/L Length of file (in bytes)
/D Date of creation
/R Read date
/W Write date
/A Author
/E Print everything
TYPE TEXT Synonyms: ASCII, TEXT
TYPE BINARY
Type TEXT is the default in the absence of a TYPE specification. The TYPE
command used to force transfers to be a particular type. At the present time,
this is required to transfer binary files.
The command 'TYPE TEXT' may be abbreviated as the command 'TEXT' or 'ASCII'.
Text files are sent over the Ethernet with a byte size of 8, but only 7 bits per
character are used locally. This means that you cannot transfer 8-bit ASCII
text files (i.e., files containing characters with the '200 on) to SAIL in text
mode. SOS line numbers are removed when files are stored, and the SAIL
character set is converted into a somewhat more conventional ASCII arrangement.
Nulls are also removed on both storing and retrieving in text mode.
In addition, CRLF's are converted into single CR's on text stores and back from
CR's to CRLF's on text retrieves unless specified otherwise by the EOL command.
Because of the conversion of CRLF's and the suppression of nulls, .XGP files and
anything else that contains overprinting or nulls will not be preserved by a
TEXT type transfer.
Type BINARY is similar to IMAGE mode on the ARPANET, except that the
representation is different during transfer. Because of that difference, the
file may be stored in a different representation on a machine with a different
word size than if received from the ARPANET. Available byte sizes are 8, 32,
36, and 72. Byte size 72 sends two PDP-10 words as nine 8 bit bytes.
A number of types available on ARPANET FTP are not available on the Ethernet
version. Types P and E are not supported by the protocol, and type L is not
implemented at the present time.
Note: Checking is done to make sure the data you are sending is compatible with
the byte size you are using. In particular, a transfer will be aborted if a
text transfer is received with the 8th bit set, if any of the low order 4 bits
are on in PDP-10 word on a store of byte size 8 or 16, or if 36 bit data is
received with the unused part of the first byte non-zero. This is to ensure the
integrity of the data you are transferring. Type X is the same as Type Binary
except that this checking is suppressed.
SAIL character conversion is as follows:
Graphic Local Remote Name
_ '30 '137 Underline
← '137 '30 Left arrow
≠ '33 '32 Not-equals
<ALT> '175 '33 <ALT> (or <ESCAPE>)
} '176 '175 Right brace
~ '32 '176 Tilde
This is the same mapping that is used on font files between SAIL and MIT except
that '↑' is not mapped. Unlike the mapping that ARPANET FTP uses, all
characters are preserved when a file is stored and then retrieved (or visa
versa).
USER name Synonym: LOGIN
The USER command sets what the remote system will be given as a user name when
any file operations are done. Note that PUPFTP does not actually use this
information until a transaction is attempted. Therefore, it also asks for a
password, in case it will be needed. The password is requested with echoing
turned off.
As well as providing access control, the user name also specifies the default
directory for the remote system. This default is overriden by specifying an
explicit directory name in a command, or by the ALIAS command.
The following is planned but not implemented.
If the USER command is read from a command file, then it first looks in FTP.INI
on the current directory, then FTP.INI in your 'master' directory (i.e.
FTP.INI[1,FOO]) to see if there is a password listed corresponding to the name
given in the command. If it does not find a match, then it asks for the
password from the terminal.
CAUTION: If FTP.INI is to be used, it should have protection of 077 and it is
recommended that it be kept on an area that does not belong to any groups. Even
so, DO NOT consider passwords stored there as secure.
ACCOUNT name Synonym: ACCT
The ACCOUNT command sets the account string to be used with the user name (and
password) on systems that require such things. At the time of this writing, no
machine on the Ethernet is known to the author to require this.
ALIAS name Synonyms: CWD, XCWD
The ALIAS command is used to specify a default directory for file references on
the remote system. No special privileges are given other than those associated
with the name and password supplied by the USER command. It merely avoids the
necessity of typing the directory name every time. The directory name given to
the ALIAS command overrides the name given in the USER command, but is
overridden by an explicit directory name in a file name.
QUIT Synonyms: BYE, EXIT
QUIT closes the Ethernet connection and exits to the monitor. It does not abort
any transfer in progress and in fact this command will not be seen until any
transfer in progress has completed. (At the moment, the best thing to do with a
hung connection is to hit <CALL> [or <control>C if you are not on a DD or III]
and typing RESET to the monitor.)
HELP topic
The HELP command prints information about a command or other topic from the
PUPFTP manual. For example, HELP HELP will print this paragraph. NOTE: The
topic may not be abbreviated. HELP with no arguments will print most of the
command names (but not the alternate names, such as EXIT as a synonym for QUIT).
Some of the help messages are quite long. Do the following to stop typeout for
a while:
Stop Start
Non-display <CTRL>S <CTRL>Q
DM2500 <HOLD> (same)
DD or III <CONTROL><BREAK> <CONTROL><CLEAR>
<control>X means hold down the CONTROL key (sometimes labeled CTRL) and at the
same time, hit the key marked X.
Unimplemented commands
The following ARPANET commands are not supported by the Ethernet FTP protocol:
APPEND, XSEM, XSEN, XMAS, and QUOTE
The following ARPANET commands have not been implemented yet:
LPPN, PICKUP, RENAME, RNFR, RNTO, RPPN, XIND